Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OCI join method - Add proto and client #51444

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Conversation

atburke
Copy link
Contributor

@atburke atburke commented Jan 24, 2025

This change adds protos, the client, and a bunch of boilerplate for the oracle join method (RFD).

Part of #41705.

@github-actions github-actions bot requested a review from kiosion January 24, 2025 01:46
@atburke atburke added the no-changelog Indicates that a PR does not require a changelog entry label Jan 24, 2025
@@ -158,6 +158,32 @@ message TPMEncryptedCredential {
bytes secret = 2;
}

// RegisterUsingOracleMethod request is the request for registration via the
// Oracle join method.
message RegisterUsingOracleMethodRequest {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What will be the order of flow here? e.g does client send first or the server? which messages?

I think it'd be beneficial for us to ensure that RegisterUsingToken request is sent first if possible - this ensures that the Auth Server knows a bunch of key details if the flow fails part-way through. One of the problems we have with the IAM method at the moment is that we have basically zero details about the failing bot/agent if a failure occurs during the join process because all the details are sent at the end.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with Noah. This might be completely different from other joining flows, but without the additional context instance join failed audit events are mostly useless.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 RegisterUsingToken is now sent first

if err != nil {
return nil, trace.Wrap(err)
}
challengeResp, err := oracleJoinClient.Recv()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

challengeResp is a confusing name for this, which is supposed to hold the challenge, and when there's already a parameter named challengeResponse

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what a better name for it would be, but I renamed challengeResponse to hopefully reduce the confusion.

api/client/joinservice.go Outdated Show resolved Hide resolved
api/client/joinservice.go Outdated Show resolved Hide resolved
lib/auth/join/join.go Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-changelog Indicates that a PR does not require a changelog entry size/md
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants